Dim Number, Digits As Integer
Dim MyString As String
Number = 53 ' Inicializa variable.
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
If Digits = 1 Then MyString = "One" Else MyString = "More than one"
Ejemplo If
Dim Number As Integer = 8
Select Number ' Evalúa número.
Case 1 To 5 ' Número entre 1 y 5
Debug.WriteLine(“Entre 1 y 5")
Case 6, 7, 8 ' Número entre 6 y 8
Debug.WriteLine(“Entre 6 y 8")
Case 9 To 10 ' Número entre 9 y 10
Debug.WriteLine(“Mayor que 8")
Case Else ' Otros valores
Debug.WriteLine(“No entre 1 y 10")
End Select
Sentencia Select … Case
Dim Counter As Integer = 0
While Counter < 20 ‘ Evaluar el valor de Counter.
Counter += 1 ' Incrementar Counter.
End While ' Finalizar cuando counter=20
Debug.WriteLine (Counter) ' Imprime 20
Sentencias iterativas (While)
Dim Words, Digit As Integer
Dim MyString As String
For Words = 10 To 1 Step -1 ' Realizar 10 repeticiones
For Digit = 0 To 9 ' Otras 10
MyString = MyString & CStr(Digit)
'Añadir num a string
Next Digit ' Incrementar counter
MyString = MyString & " " ' Añadir un space.
Next Words
Sentencias iterativas (For)
Module Test
Sub F()
Try
G()
Catch e As Exception
Console.WriteLine("Exception in F: " & e.Message)
e = New Exception("F")
' Relanzar excepción.
Throw e
End Try
End Sub
Excepciones I
Sub G()
Throw New Exception("G")
End Sub
Sub Main()
Try
F()
Catch e As Exception
Console.WriteLine("Exception in Main: " & e.Message)
End Try
End Sub
End Module
Excepciones II
Delegate Function DoubleFunc(x As Double) As Double
Class A
Private f As New DoubleFunc(AddressOf Square)
Overloads Shared Function Square(x As Single) As Single
Return x * x
End Function
Overloads Shared Function Square(x As Double) As Double
Return x * x
End Function
End Class
Delegates
Public Class EventSource
' Declara un evento
Public Event LogonCompleted(ByVal UserName As String)
Sub CauseEvent()
' Lanza un evento después de login correcto.
RaiseEvent LogonCompleted(“Deusto")
End Sub
End Class
Eventos
Interface ICustomerInfo
' Declaración de una interfaz
Property CustomerName() As String
Sub UpdateCustomerStatus()
Event UpdateComplete()
End Interface
Ejemplo complejo clases I
Public Class CustomerInfo
' CustomerInfo implementa interfaz IcustomerInfo
Implements ICustomerInfo
Private CustomerNameValue As String ' Para guardar el valor de la propiedad
Public Event UpdateComplete() Implements ICustomerInfo.UpdateComplete
Public Property CustomerName() As String Implements _
ICustomerInfo.CustomerName
Get
Return CustomerNameValue
End Get
Set(ByVal Value As String)
CustomerNameValue = Value ' Guarda el valor del atributo.
End Set
End Property
Public Sub UpdateCustomerStatus() Implements _
ICustomerInfo.UpdateCustomerStatus
' Añadir código para modificar estado cuenta
' Lanzar evento para indicar que este método se ha ejecutado.
RaiseEvent UpdateComplete()
End Sub
End Class
Ejemplo complejo clases II
‘ Métodos para probar clase
Public Sub TestImplements()
Dim Cust As New CustomerInfo()
' Asociar manejador para eventos lanzados por objeto Cust
AddHandler Cust.UpdateComplete, AddressOf HandleUpdateComplete
' Asignar valor a la propiedad CustomerName
Cust.CustomerName = “Diego"
' Recuperar y visualizar valor propiedad
MsgBox(“Nombre cliente: " & Cust.CustomerName)
' Invoca UpdateCustomerStatus para lanzar evento UpdateComplete event.
Cust.UpdateCustomerStatus()
End Sub
Ejemplo complejo clases III
Sub HandleUpdateComplete()
' Manejador de evento para UpdateComplete.
MsgBox(“Actualización completada.")
End Sub
Ejemplo complejo clases IV
Declara el nombre de un espacio de nombres
Namespace { name | name.name }
[componenttypes ]
End Namespace
componenttypes contiene enumeraciones, estructuras, interfaces, clases, módulos, delegates y otros espacios de nombres
similares a paquetes en Java
Sentencia Namespace
Declaración namespaces anidados:
Namespace N1 ' Declara espacio de nombres N1.
Namespace N2 ' Declara espacio de nombres N2 dentro de N1.
Class A ' Declara una clase dentro de N1.N2.
' Añade una clase.
End Class
End Namespace
End Namespace
Lo mismo en una sola línea:
Namespace N1.N2 ' Declara dos espacios de nombres: N1 y N2.
Class A ' Declara una clase dentro de N1.N2.
' Añade una clase aquí.
End Class
End Namespace
Ejemplo Namespaces
[ ] [{ Overloads | Overrides | Overridable | NotOverridable | MustOverride | Shadows | Shared }]
[{ Public | Protected | Friend | Protected Friend | Private }]
Sub name [(arglist)] [ Implements interface.definedname ]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub
Procedimientos con Sub I
Lista de atributos de este procedimiento
Overloads ? Este procedimiento (método) sobrecarga otro declarado en una clase base
Overrides ? sobreescribe método de clase base
Overridable/NotOverridable ? método puede [NO] ser sobrecargado
MustOverride ? método es abstracto, debe ser sobreescrito por clase que deriva
Cada argumento en arglist tiene el siguiente formato:
[ ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ] argname[( )] [ As argtype ] [ = defaultvalue ]
Procedimientos con Sub II
' Procedure Sub procedure con dos argumentos.
Sub SubComputeArea(ByVal Length As Double, ByVal Width As Double)
Dim Area As Double ' Declara variable local.
If Length = 0 Or Width = 0 Then
' Si algún argumento es 0, salir del procedure
Exit Sub ' Exit Sub immediately. ‘ equivalente a Return
End If
Area = Length * Width ' Calcula área del rectángulo.
Debug.WriteLine(Area)
' Imprime valor de área.
End Sub
Ejemplo Sub
Sintáxis similar a Sub pero devuelve un valor
' Procedure Sub con dos argumentos.
Public Function CalcSum(ByVal ParamArray Args() As Double) As Double
Dim I As Integer
CalcSum = 0
If Args.Length <= 0 Then Exit Function ' No se han pasado args.
For I = 0 To UBound(Args, 1)
CalcSum += Args(I)
Next I
End Function ' Devuelve último valor de CalcSum.
La función puede ser llamada como:
Dim ReturnedValue As Double
ReturnedValue = CalcSum(4, 3, 2, 1)
' Args(0) = 4, Args(1) = 3, and so on.
Sentencia Function
Pueden aparecer en cualquier lugar en un módulo.
Se ejecutan si ciertas condiciones se cumplen
Se pueden también usar para hacer debugging de tu aplicación, es la única situación en la que se ejecutan.
Sentencias de compilación condicional
Hola Mundo en VB.NET
' fichero: hola.vb
' compilar: vbc hola.vb
Imports System
module Hello
sub main()
Console.WriteLine(“Hola desde VB.NET”)
end sub
end module
Para compilar y ejecutar desde línea de comando:
Crear código fuente usando un editor de texto y llamarlo hola.vb.
Invocar el compilador, escribiendo el comando: vbc hola.vb
Si no hay errores de compilación, el compilador genera el fichero hola.exe
Para ejecutar el comando escribir: hola
Compilando y ejecutando Hola Mundo
Página anterior | Volver al principio del trabajo | Página siguiente |